Используются для создания массивов расширенной функциональности. Идея заложена та же что и в свойствах. Подробнее читайте "Шаг 20 - Свойства (properties)". То есть мы получаем контроль над присваиванием и получением значения. Смотрим пример:
using System;
class MyArray
{
public MyArray()
{
items = new string[10];
}
public string this[int index]
{
get
{
return items[index];
}
set
{
items[index] = value;
}
}
private string[] items;
}
class MainClass
{
public static void Main(string[] args)
{
MyArray my = new MyArray();
my[0]="Hello";
Console.WriteLine(my[0]);
}
}
Как видите я создал свой класс и описал в нем массив. В Для доступа создал безымянный метод this[int index], в котором созданы get и set, точно так же как в свойствах.
